An Interior Gateway Protocol (IGP) is a type of protocol used for exchanging routing information between gateways (i.e., network devices) within a network including a set of commonly controlled gateways (e.g., a set of corporate local area networks); this network can be referred to as an autonomous system. The exchanged routing information can be used to forward data across the autonomous system using network-level protocols like the Internet Protocol (IP).
Specific examples of IGPs include open shortest path first (OSPF), intermediate system to intermediate system (IS-IS), and routing information protocol (RIP). IGPs are not responsible for routing or exchanging routing information outside of their respective autonomous systems. Exterior or border gateway protocols are used to exchange routing information between autonomous systems and rely on IGPs to resolve routes within an AS.
The IGPs determine a set of paths from each network device in the autonomous system to each other network device in the autonomous system. A primary path is determined at each network device and the next hop to the destination is installed in the forwarding tables of the network device. However, in the case of failure of a next hop or link a secondary or alternative path is also determined to be utilized in the case of failure until the network device can recalculate a primary path based on the changed topology of the network. RFC 5286 [Basic Specification for IP Fast Reroute: Loop Free Alternatives] lays out a method to compute Loop Free Alternatives (LFA) that is applicable to Interior Gateway Protocols (IGPs) such as the intermediate system-intermediate system (IS-IS) protocol and the open shortest path first (OSPF) protocols. RFC 5286 defines a set of criteria that a next hop link or next hop node must meet to be eligible and selected as a next hop for an LFA path. In particular, sections 3.5 and 3.6 of RFC 5286 define criteria for identifying the next hop for an LFA path. This criterion includes a requirement that invalidates the links whose reverse metric is configured with a maximum link metric (as defined in for IS-IS in RFC 5305 or as defined in RFC 3137 for OSPF). If these criteria are strictly followed there are situations as described below, where the only potential alternative available which satisfies the basic loop free condition will not be considered as alternative.